// src/ui/views/ListView.qml
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Controls.Material
import "../components"
import "../dialogs"
import "../styles"

Page {
    id: root
    property var studentModel: StudentService.students

    background: Rectangle {
        color: "transparent"
    }

    Connections {
        target: StudentService
        function onStudentsChanged() {
            root.studentModel = StudentService.students
        }
    }

    ColumnLayout {
        anchors.fill: parent
        spacing: 20
        anchors.margins: 24

        // 标题和操作栏
        Rectangle {
            Layout.fillWidth: true
            height: 80
            radius: 12
            color: "#252541"
            opacity: 0.9
            border.color: "#4a4a7a"

            RowLayout {
                anchors.fill: parent
                anchors.margins: 16

                Label {
                    text: "📋 学生信息管理"
                    font {
                        bold: true
                        pixelSize: 24
                        family: "Microsoft YaHei"
                    }
                    color: "#e0e0ff"
                }

                Item { Layout.fillWidth: true }

                RowLayout {
                    spacing: 15

                    // 刷新按钮
                    Button {
                        id: refreshBtn
                        text: "刷新数据"
                        Layout.preferredWidth: 140
                        Layout.preferredHeight: 48
                        Material.background: "#6a5acd"
                        Material.foreground: "white"

                        contentItem: RowLayout {
                            spacing: 8
                            anchors.centerIn: parent

                            Text {
                                text: "🔄"
                                font.pixelSize: 16
                            }

                            Text {
                                text: parent.parent.text
                                font.bold: true
                                color: "white"
                            }
                        }

                        background: Rectangle {
                            radius: 8
                            color: parent.hovered ? Qt.darker("#6a5acd", 1.2) : "#6a5acd"
                        }

                        onClicked: StudentService.loadData()
                    }

                    // 排序选择器
                    ComboBox {
                        id: sortCombo
                        Layout.preferredWidth: 200
                        Layout.preferredHeight: 48
                        model: ["按学号排序", "按学院排序", "按宿舍排序"]

                        background: Rectangle {
                            color: "#2a2a4a"
                            radius: 8
                            border.color: sortCombo.activeFocus ? "#6a5acd" : "#4a4a7a"
                        }

                        contentItem: Text {
                            text: sortCombo.displayText
                            color: "#e0e0ff"
                            leftPadding: 16
                            verticalAlignment: Text.AlignVCenter
                        }

                        popup: Popup {
                            y: parent.height
                            width: parent.width
                            implicitHeight: contentItem.implicitHeight

                            background: Rectangle {
                                color: "#2a2a4a"
                                radius: 8
                                border.color: "#4a4a7a"
                            }

                            contentItem: ListView {
                                clip: true
                                implicitHeight: contentHeight
                                model: sortCombo.popup.visible ? sortCombo.delegateModel : null

                                delegate: ItemDelegate {
                                    width: sortCombo.width
                                    height: 48

                                    contentItem: Text {
                                        text: modelData
                                        color: "#e0e0ff"
                                        leftPadding: 16
                                        verticalAlignment: Text.AlignVCenter
                                    }

                                    background: Rectangle {
                                        color: parent.hovered ? "#3a3a5a" : "transparent"
                                    }
                                }
                            }
                        }

                        onActivated: StudentService.sortStudents(index)
                    }
                }
            }
        }

        // 学生表格卡片 - 移除DropShadow
        Rectangle {
            Layout.fillWidth: true
            Layout.fillHeight: true
            radius: 12
            color: "#1a1a2e"
            opacity: 0.8
            border.color: "#4a4a7a"

            // 简单阴影效果替代
            Rectangle {
                anchors.fill: parent
                anchors.margins: 4
                radius: parent.radius
                color: "#40000000"
                z: -1
            }

            // 学生表格
            StudentTable {
                anchors {
                    fill: parent
                    margins: 16
                }
                model: root.studentModel

                onEditRequested: editDialog.open(student)
                onDeleteRequested: confirmDialog.open(student.id)
            }
        }
    }

    // 编辑对话框
    EditDialog { id: editDialog }

    // 删除确认对话框
    ConfirmDialog {
        id: confirmDialog
        onConfirmed: function(studentId) {
            StudentService.deleteStudent(studentId)
        }
    }
}
